﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace UI.Desktop
{
    public partial class frmAgregarObervacion : Form
    {
        public frmAgregarObervacion()
        {
            InitializeComponent();
        }
        #region CB PACIENTES
        
        private void cbPaciente_Click(object sender, EventArgs e)
        {
            Business.Entities.Paciente pac = new Business.Entities.Paciente();
            DataSet dsPac = new DataSet();
            dsPac = pac.ObtenerListaPacientesHabilitados();
            ObtenerPacientes(dsPac);
        }

        private void ObtenerPacientes(DataSet dsPac)
        {
            cbPaciente.Text = "Seleccione el paciente";
            cbPaciente.DataSource = dsPac.Tables["Paciente"];
            cbPaciente.DisplayMember = dsPac.Tables["Paciente"].Columns[1].Caption.ToString();
        }

        #endregion
                
        #region TURNO
        public void cbTurno_Click(object sender, EventArgs e)
        {
            try
            {
                Business.Entities.Turno Tur = new Business.Entities.Turno();
                Business.Entities.Paciente Pac = new Business.Entities.Paciente();
                DataSet dsTur = new DataSet();
                DataSet dsPac = new DataSet();
                string Concatenado = cbPaciente.Text.ToString();
                dsPac = Pac.ObtenerListaPacientesConNombreApellido(Concatenado);

                string fecha = dtFechaTurno.Value.ToShortDateString();
                dsTur = Tur.ObtenerTurnoHistorial(dsPac, fecha);

                ObtenerTurnos(dsTur);
            }
            catch 
            { 
                MessageBox.Show("No hay turnos para dicha fecha", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
            }
        }

        private void ObtenerTurnos(DataSet dsTur)
        {
            cbTurno.Text = "No hay turnos en la fecha seleccionada";
            cbTurno.DataSource = dsTur.Tables["Turnos"];
            cbTurno.DisplayMember = dsTur.Tables["Turnos"].Columns[0].Caption.ToString();
        }

        private void cbTurno_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                Business.Entities.Paciente Pac = new Business.Entities.Paciente();
                Business.Entities.Turno Tur = new Business.Entities.Turno();
                DataSet dsPac = new DataSet();
                DataSet dsTur = new DataSet();
                string Paciente = cbPaciente.Text;
                string fecha = dtFechaTurno.Value.ToShortDateString();
                string Turno = cbTurno.Text;
                dsPac = Pac.ObtenerListaPacientesConNombreApellido(Paciente);
                dsTur = Tur.ObtenerObservacionTurno(dsPac, fecha, Turno);
                string observacion = dsTur.Tables["Turnos"].Rows[0][5].ToString();
                if (observacion == "")
                { rtObservacion.Text = "[No tiene observacion, agreguela aquí]"; }
                else
                { rtObservacion.Text = observacion; }
            }
            catch { }
        }

        #endregion

        #region GUARDAR OBSERVACION

        private void btnGuardarPaciente_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea agregar  la observación a el turno con fecha " + dtFechaTurno.Value.ToShortDateString() + "?", "Atención", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
               try
               {
                    Business.Entities.Turno Tur = new Business.Entities.Turno();
                    Business.Entities.Paciente Pac = new Business.Entities.Paciente();
                    DataSet dsTur = new DataSet();
                    DataSet dsPac = new DataSet();
                    string Concatenado = cbPaciente.Text.ToString();
                    dsPac = Pac.ObtenerListaPacientesConNombreApellido(Concatenado);
                    string Id_Paciente = dsPac.Tables["Paciente"].Rows[0][0].ToString();
                    string fecha = dtFechaTurno.Value.ToShortDateString();
                    string concatenado = cbTurno.Text.ToString();
                    dsTur = Tur.ConseguirTurnoPaciente(Id_Paciente, fecha, concatenado);
                    string id_turno = dsTur.Tables["Turnos"].Rows[0][0].ToString();
                    string observacion = rtObservacion.Text;
                    Tur.AgregarObservacion(id_turno, observacion);
                    this.Close();
                }
                catch { }
            }
        }

        #endregion

        #region CERRAR

        private void btnCerrarTurnos_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        #endregion

        private void frmAgregarObervacion_Load(object sender, EventArgs e)
        {

        }
    }
}
